﻿Imports Newtonsoft.Json

Namespace Catalog
    Public Class BPOGenreSearchResponse
        Public metadata As BPOGenreSearchMetadata
        Public results As BPOGenreSearchResult
    End Class

    Public Class BPOGenreSearchMetadata
        Public topDownloads As BPOCountObject
        Public mostPopularReleases As BPOCountObject
        Public components As IDictionary(Of String, String)
    End Class

    Public Class BPOGenreSearchResult
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public genre As BPOGenre
        'Public topDownloads As ICollection(Of BPOTrack)
        'Public mostPopularReleases As ICollection(Of BPORelease)
        'Public components As ICollection(Of BPOGenreSearchComponent)
    End Class

    Public Class BPOGenreSearchComponent
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public title As String
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public description As String
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public type As String
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public position As Integer?
        <JsonProperty(NullValueHandling:=NullValueHandling.Ignore)>
        Public items As ICollection(Of BPOGenreSearchComponentItem)
    End Class

    Public Class BPOGenreSearchComponentItem
        Public description As String
        Public detail As BPOBase
        Public externalUrl As String
        Public position As Integer?
        Public image As BPOImage
    End Class
End Namespace